package pe.com.cotelasa.scp.controlador.converter;

import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;
import javax.faces.convert.FacesConverter;
import javax.inject.Inject;

import org.springframework.stereotype.Component;

import pe.com.cotelasa.scp.dominio.excepcion.ServiceException;
import pe.com.cotelasa.scp.dominio.service.IServicioOrdenCompraServicio;
import pe.com.cotelasa.scp.entidad.OrdenCompraServicio;


@FacesConverter(value = "ordenCSConverter")
@Component("ordenCSConverter")
public class OrdenCSConverter implements Converter {


	@Inject
	private IServicioOrdenCompraServicio  servicioOrdenCompraServicio;

	@Override
	public Object getAsObject(FacesContext fc, UIComponent uic,
			String nroOrdenCompra) {
		if (nroOrdenCompra.trim().equals("")) {
			return null;
		} else {
			try {
				OrdenCompraServicio find = new OrdenCompraServicio();
				find.setEstadoOrden(String.valueOf(OrdenCompraServicio.ESTADO_ORDEN_SC.BORRADOR.getValor()));
				find.setCodigo(nroOrdenCompra);
				OrdenCompraServicio ordenCompraServicio = new OrdenCompraServicio();
				servicioOrdenCompraServicio.listarOrdenCompraServiciosConCodigo(find);
				return ordenCompraServicio;
			} catch (ServiceException exception) {
				exception.printStackTrace();
				throw new ConverterException(new FacesMessage(
						FacesMessage.SEVERITY_ERROR, "Conversion Error",
						"No valido Proveedor"));
			}
		}
	}

	@Override
	public String getAsString(FacesContext fc, UIComponent uic, Object o) {
		if (o == null || o.equals("")) {
			return "";
		} else {
			return String.valueOf(((OrdenCompraServicio) o).getCodigo());
		}
	}
	
}
